#ifndef PIECE_H
#define PIECE_H


#include "Constantes.h"

/**
* \struct Piece
* \brief Composee d'un tableau 4*4
*/
struct Piece
{
	Etat tableau[4][4];
};

typedef struct Piece Piece;

/*Cree un pointeur sur piece avec un malloc */
Piece * CreerPiece();

/* Initialise la piece de forme L droite */
void InitLD(Piece* p);

/* Initialise la piece de forme L gauche */
void InitLG(Piece* p);

/* Initialise la piece de forme Z droite */
void InitZD(Piece* p);

/* Initialise la piece de forme Z gauche */
void InitZG(Piece* p);

/* Initialise la piece de forme carree */
void InitCarre(Piece* p);

/* Initialise la piece de forme barre */
void InitBarre(Piece* p);

/* Initialise la piece de forme T */
void InitT(Piece* p);

/*Initialise une piece de forme aleatoire */
void InitPiece(Piece* p);

/*rotation de la piece de 90 degre */
void TournerPiece(Piece* p);

/*Renvois si la case est vide ou non */
Etat GetEtatPiece(const Piece* p, int x, int y);

/*Efface la piece */
void LiberePiece(Piece * p);

#endif
